package cn.iocoder.an.module.business.controller.admin.auditarea.vo;

import com.fhs.core.trans.anno.Trans;
import com.fhs.core.trans.constant.TransType;
import com.fhs.core.trans.vo.VO;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import cn.idev.excel.annotation.*;

@Schema(description = "管理后台 - 分层审核区域设置 Response VO")
@Data
@ExcelIgnoreUnannotated
public class AuditAreaRespVO implements VO {

    @Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "1990")
    @ExcelProperty("id")
    private Long id;

    @Schema(description = "部门id", requiredMode = Schema.RequiredMode.REQUIRED, example = "25750")
    @ExcelProperty("部门id")
    @Trans(type = TransType.SIMPLE, targetClassName = "cn.iocoder.an.module.system.dal.dataobject.dept.DeptDO", fields = "name", ref = "deptName")
    private Long deptId;

    private String deptName;

    @Schema(description = "负责人", example = "23966")
    @ExcelProperty("负责人")
    @Trans(type = TransType.SIMPLE, targetClassName = "cn.iocoder.an.module.system.dal.dataobject.user.AdminUserDO", fields = "nickname", ref = "dutyUserName")
    private Long dutyUserId;

    private String dutyUserName;

    @Schema(description = "上级部门", requiredMode = Schema.RequiredMode.REQUIRED, example = "12217")
    @ExcelProperty("上级部门")
    @Trans(type = TransType.SIMPLE, targetClassName = "cn.iocoder.an.module.system.dal.dataobject.dept.DeptDO", fields = "name", ref = "parentDeptName")
    private Long parentDeptId;

    private String parentDeptName;

    @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("创建时间")
    private LocalDateTime createTime;



    //区域名称
    private String areaName;

    //重要工序
    private String importantProcesses;

    //最近问题
    private String recentlyProblem;

    //下发人
    private  Long sendUserId;
    private String sendUserName;

    //填报时间
    private LocalDateTime writeTime;

    //填报人
    private Long writeUserId;
    private String writeUserName;

    //下发时间
    private LocalDateTime sendTime;

}